Gemini Proxy
Gemipedia: a Gemini interface to Wikipedia
2022-05-10 | #gemipedia #wikipedia #cgi | @Acidus
Today I'm releasing Gemipedia, a Gemini interface to Wikipedia focused on an awesome reading experience.
Features:
* Supports fuzzy matching for finding articles
* Groups all the links to additional articles by section, and separate "References" pages for each section
* Gallery View, which pulls all media like images and video out into a separate view
* Supports tables, including cells that span multiple rows or columns, by converting them to ASCII art tables inside of preformatted sections
* Supports math formulas, by fetches the original SVG images and converting them on the fly to PNG
* Always up-to-date, by using a live interface to Wikipedia API's, with a caching layer to improve speed and reduce load on Wikipedia
* PDF export for offline reading
https://github.com/acidus99/Gemipedia
Why?
2 reasons:
* 1: I love reading content on Wikipedia
* 2: The only functioning Wikipedia interface in Gemini is primitive, both for reading (content is missing or rendered poorly), and navigating (no links on articles, no way to click through a redirect page). I found it unusable.
If I wanted to read Wikipedia content on Gemini, I would need build my own interface.
Distraction-free Encyclopedias
Months ago I read a great piece by Marginalia, "Thoughts on the linkpocalypse" where they compare Encarta' Microsoft's CDROM-based encyclopedia from the mid-1990's with Wikipedia. Specifically about their hyperlinks-to-content ratios, and the resulting effect on focus.
So Marginalia built "Highly Readable Encyclopedia":
This is an encyclopedia based on Wikipedia's database, that strips away most links and almost all visual clutter to provide a more book-like reading experience with fewer distractions.
Building an interface to Wikipedia
is easy. Building an interface to
Instead I spent the last month diving into Wikipedia content, how it is structured, and figuring out how to restructure that.
For example, many Wikipedia articles achieve multi-column content by using a <TABLE> with a single row, and a few columns to hold the text. Crazy, but Wikipedia is nearly 20 years old, and lots of content is built this way. Blindly converting <TABLE> tags to ASCII art tables would be a terrible reading experience for that kind of content. So instead, I wrote code to detect that, and restructure it into normal text content.
Feedback wanted
Gemipedia has come a long way:
https://github.com/acidus99/Gemipedia/blob/main/Changelog.txt
There is certainly more work to be done.
https://github.com/acidus99/Gemipedia/blob/main/TODOs.txt
A big one is to support other languages. Right now, Gemipedia is English only, because I am skipping certain sections that don't make sense (e.g. References, External Links, Bibliography) by looking at the content of a section's heading. That's language specific. Luckily, I found a more modern API that includes section metadata, allowing me to skip those.
Here is my ask of the community:
* Please give Gemipedia a try and let me know what you think. Wikipedia's content is diverse I find the majority of bugs by just reading lots of articles and noting where the rendering looks incorrect.
* If you want to link Wikipedia content, consider linking to Gemipedia instead of out to Wikipedia over HTTPS. This keeps readers in their Gemini client and makes for a less disruptive reading experience.
You can send feedback to me here:
you're on gemi.dev/gemlog/2022-05-10-launching-gemipedia.gmi